// 声明当前类所在的包路径，便于组织和管理类文件
package com.oamic.xiaomi.serverproject.spring;

// 引入 Spring Boot 的 ApplicationReadyEvent 事件类
// 该事件在 Spring Boot 应用完全启动并准备就绪后发布

import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;

// 使用 @Component 注解将该类注册为 Spring 容器中的一个组件
// 这样 Spring 启动时会自动发现并创建该类的实例
@Component
// 定义 DemoApplicationReady 类，实现 ApplicationListener 接口来监听 ApplicationReadyEvent 事件
// 当 Spring Boot 应用完全启动完成后，会触发这个监听器
public class DemoApplicationReady implements ApplicationListener<ApplicationReadyEvent> {

    // 重写 ApplicationListener 接口的 onApplicationEvent 方法
    // 当监听到 ApplicationReadyEvent 事件时，会执行该方法中的逻辑
    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        // 在控制台打印信息，表示 Spring 容器已经启动完毕，可以进行项目初始化工作
        // 这个时机是应用完全启动后，可以安全地访问所有 Bean 和执行业务逻辑
        System.out.println("spring容器启动完毕，进行一些项目初始化工作");
    }
}
